/*
 * vue 插件示例
 */

var MyPlugin = {};

// 暴露出的全局配置项，也就是在调用 Vue.use(Vue, options) 时传入的第二个选项参数
MyPlugin.config = {};

// 核心部分，插件的具体逻辑均在此实现
MyPlugin.install = function (Vue, options) {
  // 1. 添加全局方法或属性
  Vue.myGlobalMethod = function () {
    console.log('myGlobalMethod')
  };
  // 2. 添加全局资源
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // 逻辑...
    }
  });
  // 3. 注入组件
  Vue.mixin({
    created: function () {
      // 逻辑...
    },
    methods: {
      fun () {
        console.log('fun')
      }
    }
  });
  // 4. 添加实例方法
  Vue.prototype.$myMethod = function (options) {
    // 逻辑...
  }
};

// 支持 CommonJS
if (typeof exports == "object") {
  module.exports = MyPlugin;
  // 支持 AMD
} else if (typeof define == "function" && define.amd) {
  define([], function () {
    return MyPlugin
  });
// Vue 是全局变量时，自动调用 Vue.use()
} else if (window.Vue) {
  window.MyPlugin = MyPlugin;
  Vue.use(MyPlugin)
}
